﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Linq;
using System.Text;
using System.util;
using System.Web;
using System.Windows.Forms;

using Business_Entity;
using Business_Logic;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace PetSoft.GUI.Ventas
{
    public partial class GUIMascota : Form
    {
    	//private BEMascota mascotaSeleccionada ;	
    	//private bool nuevo;
    	private BECliente clienteSeleccionado;
    	private BEMascota mascotaSeleccionada;
    	private List<BEEspecie> listaEspecies;
    	private List<BERaza> listaRazas;
    	private List<BESexo> listaSexos;
    	private List<BEEstado> listaEstados;
    	private List<BEEstado> listaEstadosBuscaPareja;
    	private List<BEEstado> listaDisponible;
    	private List<BEEstado> listaMismaRaza;
    	private List<BELineaPedidoServicio> listaHistorial;
    	private BLMascota blMascota;
        private System.Drawing.Image imagen; 		  
		private GUICliente guiCliente;	        
		
		public GUICliente GuiCliente {
			get { return guiCliente; }
			set { guiCliente = value; }
		}
        
        private int tipoVentana = 0;    
            	
		public BEMascota MascotaSeleccionada {
			get { return mascotaSeleccionada; }
			set { mascotaSeleccionada = value; }
		}
        /*
        public GUIMascota(BECliente cliente)
        {                	
            InitializeComponent();
            inicializarComponentes();            
            this.clienteSeleccionado = cliente;
            llenarCamposCliente();
            removerTabHistorialServiciosMascota();
        }
        */
        public GUIMascota(BECliente cliente, int tipoVentana)
        {                	
            InitializeComponent();
            inicializarComponentes();            
            this.clienteSeleccionado = cliente;
            this.tipoVentana = tipoVentana;
            llenarCamposCliente();
            removerTabHistorialServiciosMascota();			this.NombreTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);
			this.OtraEspecieTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);
			this.OtraRazaTB.KeyPress +=new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);
            if(tipoVentana == 3)
            	VerClienteBTN.Enabled = false;
            else
            	this.Text = "Registrar nueva mascota a "+cliente.Nombre+" "+cliente.ApellidoPaterno+" "+ cliente.ApellidoMaterno;
        }			
        /*
        public GUIMascota()
        {
            InitializeComponent(); 
            inicializarComponentes();           
            removerTabHistorialServiciosMascota();
        }
		*/

        /*
        public GUIMascota(BEMascota mascota, BECliente cliente)
        {
            InitializeComponent();
            inicializarComponentes();
            this.clienteSeleccionado = cliente;
            this.mascotaSeleccionada = mascota;
            
            llenarCamposCliente();                      
            llenarCamposMascotas();                                   
        }
*/
		public GUIMascota(BEMascota mascota, BECliente cliente, int tipoVentana)
        {
            InitializeComponent();
            inicializarComponentes();
            this.clienteSeleccionado = cliente;
            this.mascotaSeleccionada = mascota;
            this.tipoVentana = tipoVentana;
            
            llenarCamposCliente();                      
            llenarCamposMascotas();  
			this.NombreTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);
			this.OtraEspecieTB.KeyPress += new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);
			this.OtraRazaTB.KeyPress +=new KeyPressEventHandler(Utils.SoloLetrasNumerosTB);

            if(tipoVentana == 1){ // VER
            	deshabilitarCampos();
            }else if(tipoVentana == 2){ // EDITAR
            	habilitarCampos();
            }
            
        }        
        
		public void removerTabHistorialServiciosMascota(){
        	MascotaTAB.TabPages.Remove(HistorialMascotaTAB);
        }
		
        public void inicializarComponentes(){
        	inicializarCombos();
        	listaHistorial=new List<BELineaPedidoServicio>();            
            this.TallaTB.KeyPress += new KeyPressEventHandler(Utils.DecimalesPuntoTB);            
            this.PesoTB.KeyPress += new KeyPressEventHandler(Utils.DecimalesPuntoTB);            
            this.DescripcionTBM.KeyPress+=new KeyPressEventHandler(Utils.NoCaracteresRarosTB);  
			this.FechaNacimientoDTP.MaxDate = DateTime.Today;          
			blMascota=new BLMascota();			
			FotoMascota.Image = System.Drawing.Image.FromFile(Utils.rutaFotoNoDisponible);
        }

        public void llenarCamposMascotas(){  
			try{
		        this.CodigoMascotaTB.Text = mascotaSeleccionada.Id.ToString();
		        this.NombreTB.Text = mascotaSeleccionada.Nombre;
		        if(mascotaSeleccionada.Genero == 'H')
		        	this.GeneroCB.SelectedValue = 1;
		        else if (mascotaSeleccionada.Genero == 'M')
		        	this.GeneroCB.SelectedValue = 2;
		        this.EspecieCB.SelectedValue = mascotaSeleccionada.BeRaza.BeEspecie.IdEspecie;
		        this.OtraEspecieTB.Text = mascotaSeleccionada.OtraEspecie;
		        this.RazaCB.SelectedValue = mascotaSeleccionada.BeRaza.IdRaza;
		        this.OtraRazaTB.Text = mascotaSeleccionada.OtraRaza;
		        this.FechaNacimientoDTP.Value = mascotaSeleccionada.FechaNacimiento;                                  
		        this.TallaTB.Text = mascotaSeleccionada.Talla.ToString();
		        this.PesoTB.Text = mascotaSeleccionada.PesoMascota.ToString();
		        this.DescripcionTBM.Text = mascotaSeleccionada.Descripcion;            
		        
		        if(mascotaSeleccionada.BuscaPareja == 'S')
		        	this.BuscaParejaCB.SelectedValue = 1;
		        else if(mascotaSeleccionada.BuscaPareja == 'N')
		        	this.BuscaParejaCB.SelectedValue = 2;            
		        
		        if(mascotaSeleccionada.Disponible == 'S')
		        	this.DisponibleCB.SelectedValue = 1;
		        else if(mascotaSeleccionada.Disponible == 'N')
		        	this.DisponibleCB.SelectedValue = 2;            
		                    
		        if(mascotaSeleccionada.MismaRaza == 'S')
		        	this.MismaRazaCB.SelectedValue = 1;
		        else if(mascotaSeleccionada.MismaRaza == 'N')
		        	this.MismaRazaCB.SelectedValue = 2;            
		                                
		        if(mascotaSeleccionada.Estado == 'A')
		        	this.EstadoCB.SelectedValue = 1;
		        else if(mascotaSeleccionada.Estado == 'I')
		        	this.EstadoCB.SelectedValue = 2;
		        
		        BLMascota blMascota = new BLMascota();
		        this.FotoMascota.Image = blMascota.buscarFotoMascota(mascotaSeleccionada);
		        mascotaSeleccionada.Foto = FotoMascota.Image;

		        
		        //this.RutaImgTB.Text = "Img1.jpeg"; //mascotaSeleccionada.Foto.ToString();                                   
			}catch(Exception ex){
				Utils.MessageError("",ex);
			}
        }
        
        public void inicializarCombos(){
        	this.listaSexos = new List<BESexo>();
        	this.listaSexos.Add(new BESexo(-1,"<Seleccionar>"));
        	this.listaSexos.Add(new BESexo(1,"HEMBRA"));
        	this.listaSexos.Add(new BESexo(2,"MACHO"));        	
        	this.GeneroCB.DataSource = listaSexos;
        	this.GeneroCB.ValueMember = "idSexo";
        	this.GeneroCB.DisplayMember = "descripcion";
        	        	                	
        	BLEspecie blEspecie = new BLEspecie();        	
        	this.listaEspecies = blEspecie.obtenerEspeciesMascotas();        	
        	this.EspecieCB.DataSource = listaEspecies;
        	this.EspecieCB.ValueMember = "idEspecie";
        	this.EspecieCB.DisplayMember = "descripcion";        	
        	
        	this.listaEstados = new List<BEEstado>();
        	this.listaEstados.Add(new BEEstado(-1,"<Seleccionar>"));
        	this.listaEstados.Add(new BEEstado(1,"ACTIVO"));
        	this.listaEstados.Add(new BEEstado(2,"INACTIVO"));
        	//this.listaEstados.Add(new BEEstado(3,"ELIMINADO"));
        	this.EstadoCB.DataSource = listaEstados;
        	this.EstadoCB.ValueMember = "idEstado";
        	this.EstadoCB.DisplayMember = "descripcion";
        	this.EstadoCB.SelectedValue = 1;
        	
        	this.listaEstadosBuscaPareja = new List<BEEstado>();
        	this.listaEstadosBuscaPareja.Add(new BEEstado(-1,"<Seleccionar>"));
        	this.listaEstadosBuscaPareja.Add(new BEEstado(1,"SI"));
        	this.listaEstadosBuscaPareja.Add(new BEEstado(2,"NO"));
        	this.BuscaParejaCB.DataSource = listaEstadosBuscaPareja;
        	this.BuscaParejaCB.ValueMember = "idEstado";
        	this.BuscaParejaCB.DisplayMember = "descripcion";        

			this.listaDisponible = new List<BEEstado>();
        	this.listaDisponible.Add(new BEEstado(-1,"<Seleccionar>"));
        	this.listaDisponible.Add(new BEEstado(1,"SI"));
        	this.listaDisponible.Add(new BEEstado(2,"NO"));
        	this.DisponibleCB.DataSource = listaDisponible;
        	this.DisponibleCB.ValueMember = "idEstado";
        	this.DisponibleCB.DisplayMember = "descripcion";        	
        	
        	this.listaMismaRaza = new List<BEEstado>();
        	this.listaMismaRaza.Add(new BEEstado(-1,"<Seleccionar>"));
        	this.listaMismaRaza.Add(new BEEstado(1,"SI"));
        	this.listaMismaRaza.Add(new BEEstado(2,"NO NECESARIAMENTE"));
        	this.MismaRazaCB.DataSource = listaMismaRaza;
        	this.MismaRazaCB.ValueMember = "idEstado";
        	this.MismaRazaCB.DisplayMember = "descripcion"; 
        }
        
        private void EspecieCB_SelectedIndexChanged(object sender, EventArgs e){        	
        	
        	if(Convert.ToInt16(EspecieCB.SelectedValue) == -1) {
        		RazaCB.Enabled = false;        		
        	}else{        		
        		RazaCB.Enabled = true;
	        	
	        	BEEspecie beEspecie = new BEEspecie();
	        	beEspecie.IdEspecie = Convert.ToInt16(EspecieCB.SelectedValue);
	        	beEspecie.Descripcion = EspecieCB.Text;
	        	
	        	BLRaza blRaza = new BLRaza();
	        	this.listaRazas = new List<BERaza>();
	        	this.listaRazas = blRaza.obtenerRazasMascotas(beEspecie);
	        	RazaCB.DataSource = listaRazas;
				RazaCB.ValueMember = "idRaza";
				RazaCB.DisplayMember = "descripcion";			
        	}
        	
        	if(EspecieCB.Text.Equals("OTRO")){
        		OtraEspecieTB.Enabled = true;        		
        	}else{
        		OtraEspecieTB.Enabled = false;    
				OtraEspecieTB.Text = "";        		
        	}
        }
        
        public void llenarCamposCliente(){
        	CodigoDuenoTB.Text = clienteSeleccionado.IdCliente.ToString();
        	NombreDuenoTB.Text = clienteSeleccionado.Nombre + " " + 
	        		             clienteSeleccionado.ApellidoPaterno + " " + 
	        		             clienteSeleccionado.ApellidoMaterno;
        }
        
        public void cambiarNombreVentana(String nombre){
        	this.Text = nombre;
        }
        
        private void buAceptar_Click(object sender, EventArgs e)
        {
        	try{
        		
        		if(tipoVentana == 1){
        			this.Dispose();
        			return;
        		}
        		
        		String msg = "";        		
        			
    			msg = msg + "Debe llenar los siguientes campos:"+'\n';
    			
    			if(NombreTB.Text.Equals(""))
    				msg = msg + " - Nombre" + '\n';
    			
    			if(Convert.ToInt16(GeneroCB.SelectedValue) == -1)
    				msg = msg + " - Género" + '\n';
    			
    			if(Convert.ToInt16(EspecieCB.SelectedValue) == -1)
    				msg = msg + " - Especie" + '\n';
    			
    			if(Convert.ToInt16(RazaCB.SelectedValue) == -1)
    				msg = msg + " - Raza" + '\n';        				        		
    			
    			if(Convert.ToInt16(BuscaParejaCB.SelectedValue) == -1)
    				msg = msg + " - ¿Busca pareja?" + '\n';        			
    			else if(Convert.ToInt16(BuscaParejaCB.SelectedValue) == 1){
    				
    				if(Convert.ToInt16(DisponibleCB.SelectedValue) == -1)
    					msg = msg + " - ¿Disponible?" + '\n';        		
    				
    				if(Convert.ToInt16(MismaRazaCB.SelectedValue) == -1)
    					msg = msg + " - ¿Misma Raza?" + '\n';
    			}
    			
    			if(Convert.ToInt16(EstadoCB.SelectedValue) == -1)
    				msg = msg + " - Estado" + '\n';        			        		        		
        		
        		if(DateTime.Compare(FechaNacimientoDTP.Value.Date,DateTime.Now.Date) >= 0)
	        		msg = msg + "Debe ingresar una fecha menor al día de hoy";
	        		
        		if(!msg.Equals("Debe llenar los siguientes campos:\n")){
        			Utils.MessageAviso(msg);
        			//MessageBox.Show(msg,"Aviso");
        			return;        		       		 
        		}
        		
        		//registro de la mascota
        		
        		BEMascota mascota = new BEMascota();
        		
        		if(!CodigoMascotaTB.Text.Equals(""))
        			mascota.IdMascota = int.Parse(CodigoMascotaTB.Text);        	
        		
        		mascota.Nombre = NombreTB.Text;
        		
        		if(Convert.ToInt16(GeneroCB.SelectedValue) == 1)
        			mascota.Genero = 'H';
        		else if (Convert.ToInt16(GeneroCB.SelectedValue) == 2)
        			mascota.Genero = 'M';
        		
        		mascota.BeRaza = new BERaza();
        		
        		mascota.BeRaza.Codigo = Convert.ToInt16(RazaCB.SelectedValue);
        		mascota.BeRaza.Descripcion = RazaCB.Text;
        		
        		mascota.BeRaza.BeEspecie = new BEEspecie();
        		mascota.BeRaza.BeEspecie.IdEspecie = Convert.ToInt16(EspecieCB.SelectedValue);
        		mascota.BeRaza.BeEspecie.Descripcion = EspecieCB.Text;
        		
        		if(!OtraEspecieTB.Text.Equals(""))
        			mascota.OtraEspecie = OtraEspecieTB.Text;
        		else
        			mascota.OtraEspecie = "";	
        		
        		if(!OtraRazaTB.Text.Equals(""))
        			mascota.OtraRaza = OtraRazaTB.Text;
        		else
        			mascota.OtraRaza = "";        		        		
        		
        		mascota.FechaNacimiento = FechaNacimientoDTP.Value;
        		
        		if(!TallaTB.Text.Equals(""))
        			mascota.Talla = Single.Parse(TallaTB.Text);
        		else
        			mascota.Talla = 0;
        		
        		if(!PesoTB.Text.Equals(""))
        			mascota.Peso = Single.Parse(PesoTB.Text);        		
        		else
        			mascota.Peso = 0;
        		
        		if(Convert.ToInt16(BuscaParejaCB.SelectedValue) == 1)
        			mascota.BuscaPareja = 'S';
        		else if(Convert.ToInt16(BuscaParejaCB.SelectedValue) == 2)
        			mascota.BuscaPareja = 'N';        		
        		        
				if(Convert.ToInt16(DisponibleCB.SelectedValue) == 1)
        			mascota.Disponible = 'S';
        		else if(Convert.ToInt16(DisponibleCB.SelectedValue) == 2)
        			mascota.Disponible = 'N';
				else if(Convert.ToInt16(DisponibleCB.SelectedValue) == -1)
        			mascota.Disponible = '-';				        		
        		
        		if(Convert.ToInt16(MismaRazaCB.SelectedValue) == 1)
        			mascota.MismaRaza = 'S';
        		else if(Convert.ToInt16(MismaRazaCB.SelectedValue) == 2)
        			mascota.MismaRaza = 'N';        		
        		else if(Convert.ToInt16(MismaRazaCB.SelectedValue) == -1)
        			mascota.MismaRaza = '-';        		        		
        		       		
        		if(mascotaSeleccionada == null){
        			if(RutaImgTB.Text.Equals(""))
        				mascota.Foto = System.Drawing.Image.FromFile(Utils.rutaFotoNoDisponible);
        			else
        				mascota.Foto = System.Drawing.Image.FromFile(RutaImgTB.Text);
	        		//mascota.Foto.RutaImagen = Utils.rutaFotoNoDisponible;	        		        		
        		}else if(mascotaSeleccionada != null){
        			if(RutaImgTB.Text.Equals(""))
        				mascota.Foto = mascotaSeleccionada.Foto;
        			else
        				mascota.Foto = System.Drawing.Image.FromFile(RutaImgTB.Text);
	        		//mascota.Foto.RutaImagen = mascotaSeleccionada.Foto.RutaImagen;		
        		}
        		
        		mascota.Descripcion = DescripcionTBM.Text;
        		
        		if(Convert.ToInt16(EstadoCB.SelectedValue) == 1)
        			mascota.Estado = 'A';
        		else if(Convert.ToInt16(GeneroCB.SelectedValue) == 2)
        			mascota.Estado = 'I';      		  
        		
        		BLMascota blMascota = new BLMascota();
        		
        		if(tipoVentana == 3){
        			clienteSeleccionado.IdCliente = blMascota.obtenerIDClienteNombre();        			
        		}
        		
        		mascota.Dueno = clienteSeleccionado;
        		
        		//BLMascota blMascota = new BLMascota();
                
                int r = 0;
                
                if(!Utils.MessagePregunta("¿Está seguro que desea realizar la siguiente acción?")) return;
                
                if(CodigoMascotaTB.Text.Equals("")){                	
                	r = blMascota.insertarNuevaMascota(mascota);	
                	if(r == 1) 
                		Utils.MessageInformation("Se insertó correctamente la mascota");
                }else if(!CodigoMascotaTB.Text.Equals("")){
                	r = blMascota.actualizarMascota(mascota);
                	if(r == 1) 
                		Utils.MessageInformation("Se actualizó correctamente la mascota");
                }                
                
                switch(tipoVentana){
                	case 0:
                		guiCliente.llenarGrillaMascotas();
                		this.Dispose();
                		return;
                	case 1: // ver
                		this.Dispose();
                		return;
                	case 2: // editar         		
                		guiCliente.llenarGrillaMascotas();
                		this.Dispose();
                		return;
                	case 3: // dejar en adopción
                		//limpiarCampos();
                		this.Dispose();
                		return;                	
                }
                
        	}
        	catch(Exception ex){
        		Utils.MessageError("",ex);
        	}
       	}	        	       

        private void buEditar_Click(object sender, EventArgs e)
        {
        	habilitarCampos();
        }

        private void buCancelar_Click(object sender, EventArgs e)
        {	
        	if(tipoVentana == 1){
        		this.Dispose();
        		return;
        	}
        	
        	if(Utils.MessagePregunta("¿Está seguro que desea cancelar esta acción?"))
        		this.Dispose();
        }                            
        
        public void deshabilitarCampos()
        {
        	this.CodigoDuenoTB.Enabled = false;
        	this.NombreDuenoTB.Enabled = false;
        	this.CodigoMascotaTB.Enabled = false;
        	this.NombreTB.Enabled = false;
        	this.GeneroCB.Enabled = false;
        	this.EspecieCB.Enabled = false;     
			this.OtraEspecieTB.Enabled = false;        	
        	this.RazaCB.Enabled = false;
        	this.OtraRazaTB.Enabled = false;
        	this.FechaNacimientoDTP.Enabled = false;
        	this.TallaTB.Enabled = false;
        	this.PesoTB.Enabled = false;
        	this.DescripcionTBM.Enabled = false;
        	this.BuscaParejaCB.Enabled = false;        	        	        	
        	this.DisponibleCB.Enabled = false;
        	this.MismaRazaCB.Enabled = false;
        	this.EstadoCB.Enabled = false;
        	this.ExaminarBTN.Enabled = false;
        	//this.AceptarEditarBTN.Text = "Editar";
        }
        
        public void habilitarCampos()
        {
            this.NombreTB.Enabled = true;
            this.GeneroCB.Enabled = true;
            this.EspecieCB.Enabled = true;
            if(EspecieCB.Text.Equals("OTRO"))
            	this.OtraEspecieTB.Enabled = true;
            this.RazaCB.Enabled = true;
            if(RazaCB.Text.Equals("OTRO"))
            	this.OtraRazaTB.Enabled = true;
            this.FechaNacimientoDTP.Enabled = true;
            this.TallaTB.Enabled = true;
            this.PesoTB.Enabled = true;
            this.DescripcionTBM.Enabled = true;
            this.BuscaParejaCB.Enabled = true;
            if(Convert.ToInt16(BuscaParejaCB.SelectedValue) == 1){
            	this.DisponibleCB.Enabled = true;
            	this.MismaRazaCB.Enabled = true;
            }
            this.EstadoCB.Enabled = true;            
			//this.AceptarEditarBTN.Text = "Aceptar";
        }                     
               
        
        void BuscaParejaCBSelectedIndexChanged(object sender, EventArgs e)
        {
        	if(Convert.ToInt16(BuscaParejaCB.SelectedValue) == 1){
        		DisponibleCB.Enabled = true;
        		MismaRazaCB.Enabled = true;
        		DisponibleLB.Text = "¿Disponible?*";
        		MismaRazaTB.Text = "¿Misma Raza?*";
        	}else if(Convert.ToInt16(BuscaParejaCB.SelectedValue) == 2 || Convert.ToInt16(BuscaParejaCB.SelectedValue) == -1){
        		DisponibleCB.SelectedValue = -1;
        		MismaRazaCB.SelectedValue = -1;
        		DisponibleCB.Enabled = false;
        		MismaRazaCB.Enabled = false;
        		DisponibleLB.Text = "¿Disponible?";
        		MismaRazaTB.Text = "¿Misma Raza?";
        	}
        }
        
        private void CargarHistorial(){
        	listaHistorial.Clear();
        	listaHistorial.AddRange(blMascota.obtenerHistorialMascota(mascotaSeleccionada.IdMascota));
        }
        
        private void GenerarReporte(){
        	if (ListaHistorialMascotaDGV.Rows.Count>0)
        	{
	        	if (Utils.MessagePregunta("¿Desea generar el reporte de Historial de esta Mascota?"))
	        	{
		        	try
						{
		        			
							int cont = 1;
							String path = "..\\ReporteHistorialMascota.pdf";
							while (true)
							{
								if (File.Exists(path))
								{
									path = "..\\ReporteHistorialMascota" + cont.ToString() + ".pdf";
									cont++;
								}
								else
								{
									break;
								}
							}	
							
							Document doc = new Document(PageSize.A4.Rotate());
							doc.AddCreationDate();
							PdfWriter.GetInstance(doc, new FileStream(path, FileMode.Create));
							doc.Open();
							iTextSharp.text.Font fntTit = FontFactory.GetFont(FontFactory.COURIER_BOLD, 20, BaseColor.RED);
							iTextSharp.text.Font fntTab = FontFactory.GetFont(FontFactory.COURIER, 8, BaseColor.BLUE);
							iTextSharp.text.Font fntRes = FontFactory.GetFont(FontFactory.COURIER, 7);
							PdfPTable tab = new PdfPTable(7);
							tab.TotalWidth = 820f;
							float[] widths = new float[] { 40f, 90f, 90f, 90f, 40f, 40f,90f};
							tab.SetWidths(widths);
							tab.LockedWidth = true;
							PdfPCell cellHead =new PdfPCell(Utils.getEncabezadoReporte(),true);
							cellHead.Colspan=7;
							cellHead.Border=0;
							cellHead.HorizontalAlignment=0;
							tab.AddCell(cellHead);
							PdfPCell cell = new PdfPCell(new Phrase("REPORTE DE HISTORIAL DE MACOTA : "+mascotaSeleccionada.Nombre,fntTit));
							cell.Colspan = 7;
							cell.HorizontalAlignment = 1;
							tab.AddCell(cell);
							PdfPCell cell2 = new PdfPCell(new Phrase("Servicio",fntTab));
							cell2.HorizontalAlignment = Element.ALIGN_CENTER;
							cell2.VerticalAlignment = Element.ALIGN_CENTER;
							tab.AddCell(cell2);
							cell2 = new PdfPCell(new Phrase("Descripción",fntTab));
							cell2.HorizontalAlignment = Element.ALIGN_CENTER;
							cell2.VerticalAlignment = Element.ALIGN_CENTER;
							tab.AddCell(cell2);
							cell2 = new PdfPCell(new Phrase("Tipo Servicio",fntTab));
							cell2.HorizontalAlignment = Element.ALIGN_CENTER;
							cell2.VerticalAlignment = Element.ALIGN_CENTER;
							tab.AddCell(cell2);
							cell2 = new PdfPCell(new Phrase("Tienda",fntTab));
							cell2.HorizontalAlignment = Element.ALIGN_CENTER;
							cell2.VerticalAlignment = Element.ALIGN_CENTER;
							tab.AddCell(cell2);
							cell2 = new PdfPCell(new Phrase("Empleado",fntTab));
							cell2.HorizontalAlignment = Element.ALIGN_CENTER;
							cell2.VerticalAlignment = Element.ALIGN_CENTER;
							tab.AddCell(cell2);
							cell2 = new PdfPCell(new Phrase("Fecha Atención",fntTab));
							cell2.HorizontalAlignment = Element.ALIGN_CENTER;
							cell2.VerticalAlignment = Element.ALIGN_CENTER;
							tab.AddCell(cell2);
							cell2 = new PdfPCell(new Phrase("Observaciones",fntTab));
							cell2.HorizontalAlignment = Element.ALIGN_CENTER;
							cell2.VerticalAlignment = Element.ALIGN_CENTER;
							tab.AddCell(cell2);
							
							
							//aqui me quede agregar lista
							for (int i=0;i<ListaHistorialMascotaDGV.Rows.Count;i++){
								
								
									cell2 = new PdfPCell(new Phrase(ListaHistorialMascotaDGV[0,i].Value.ToString(),fntRes));
									cell2.HorizontalAlignment = Element.ALIGN_CENTER;
									cell2.VerticalAlignment = Element.ALIGN_CENTER;
									tab.AddCell(cell2);
									cell2 = new PdfPCell(new Phrase(ListaHistorialMascotaDGV[1,i].Value.ToString(),fntRes));
									cell2.HorizontalAlignment = Element.ALIGN_CENTER;
									cell2.VerticalAlignment = Element.ALIGN_CENTER;
									tab.AddCell(cell2);
									cell2 = new PdfPCell(new Phrase(ListaHistorialMascotaDGV[2,i].Value.ToString(),fntRes));
									cell2.HorizontalAlignment = Element.ALIGN_CENTER;
									cell2.VerticalAlignment = Element.ALIGN_CENTER;
									tab.AddCell(cell2);
									cell2 = new PdfPCell(new Phrase(ListaHistorialMascotaDGV[3,i].Value.ToString(),fntRes));
									cell2.HorizontalAlignment = Element.ALIGN_CENTER;
									cell2.VerticalAlignment = Element.ALIGN_CENTER;
									tab.AddCell(cell2);
									cell2 = new PdfPCell(new Phrase(ListaHistorialMascotaDGV[4,i].Value.ToString(),fntRes));
									cell2.HorizontalAlignment = Element.ALIGN_CENTER;
									cell2.VerticalAlignment = Element.ALIGN_CENTER;
									tab.AddCell(cell2);
									cell2 = new PdfPCell(new Phrase(ListaHistorialMascotaDGV[5,i].Value.ToString(),fntRes));
									cell2.HorizontalAlignment = Element.ALIGN_CENTER;
									cell2.VerticalAlignment = Element.ALIGN_CENTER;
									tab.AddCell(cell2);
									cell2 = new PdfPCell(new Phrase(ListaHistorialMascotaDGV[6,i].Value.ToString(),fntRes));
									cell2.HorizontalAlignment = Element.ALIGN_CENTER;
									cell2.VerticalAlignment = Element.ALIGN_CENTER;
									tab.AddCell(cell2);
		        			}
							doc.Add(tab);
							doc.Close();
		//					MessageBox.Show("Exportación exitosa", "Aviso");
							System.Diagnostics.Process.Start("AcroRd32.exe",path);
							this.Close();
						}
		        		catch(Exception ex)
						{
		        			Utils.MessageError("",ex);
		        		}
	        	}
        	}
        	else{
        		Utils.MessageAviso("No existe ningun historial para la Mascota",null);
        	}
        }
        void MascotaTABSelectedIndexChanged(object sender, EventArgs e)
        {
        	if (HistorialMascotaTAB.TabIndex==1){
        		CargarHistorial();
        		BELineaPedidoServicio beLPC=new BELineaPedidoServicio();
        		
        		ListaHistorialMascotaDGV.Rows.Clear();
        		for (int i=0;i<listaHistorial.Count;i++){
        			beLPC=listaHistorial[i];
        			String fec=beLPC.Fecha.ToString("yyyyMMdd");
        		
        			String fecha=fec.Substring(6,2)+"-"+fec.Substring(4,2)+"-"+fec.Substring(0,4);
        			ListaHistorialMascotaDGV.Rows.Add(new object[] { beLPC.Servicio.Descripcion,beLPC.Servicio.Detalle,beLPC.Servicio.Tipo.Nombre,
        			                                  		beLPC.Tienda.Nombre,beLPC.Empleado.Nombre,fecha,beLPC.Observaciones});
        		}
        	}
        }
        
        void GenerarBTNClick(object sender, EventArgs e)
        {
        	GenerarReporte();
        }
        
        void RazaCBSelectedIndexChanged(object sender, EventArgs e)
        {
        	if(RazaCB.Text.Equals("OTRO")){
        		OtraRazaTB.Enabled = true;        		
        	}else{
        		OtraRazaTB.Enabled = false;        		
        		OtraRazaTB.Text = "";
        	}        	        	
        	
        }
        
        void VerClienteBTNClick(object sender, EventArgs e)
        {
        	GUICliente v = new GUICliente(clienteSeleccionado,1);
        	v.ShowDialog();
        }
        
        void ExaminarBTNClick(object sender, EventArgs e)
        {
        	OpenFileDialog OFD = new OpenFileDialog();
        	OFD.InitialDirectory = "c:\\";
            OFD.Filter = "Image Files(*.jpg; *.jpeg)|*.jpg; *.jpeg";
            OFD.FilterIndex = 2;
            OFD.RestoreDirectory = true;
            OFD.ShowDialog();
            try{
	            //MessageBox.Show(openFileDialog1.FileName);
	            this.RutaImgTB.Text = OFD.FileName;
	            //MessageBox.Show(RutaImgTB.Text);
	            FotoMascota.Image = System.Drawing.Image.FromFile(RutaImgTB.Text);
//	            if(mascotaSeleccionada != null){
//	            	mascotaSeleccionada.Foto = System.Drawing.Image.FromFile(RutaImgTB.Text);
//	            }
            }catch{
            	
            }
        }        
        
        void limpiarCampos(){
        	CodigoMascotaTB.Text = "";
        	NombreTB.Text = "";
        	GeneroCB.SelectedValue = -1;
        	EspecieCB.SelectedValue = -1;        	OtraEspecieTB.Text = "";        	RazaCB.SelectedValue = -1;        	OtraRazaTB.Text = "";        	TallaTB.Text = "";        	PesoTB.Text = "";        	DescripcionTBM.Text = "";        	RutaImgTB.Text = "";        	BuscaParejaCB.SelectedValue = -1;        	DisponibleCB.SelectedValue = -1;        	MismaRazaCB.SelectedValue = -1;        	EstadoCB.SelectedValue = -1;
        	FotoMascota.Image = System.Drawing.Image.FromFile(Utils.rutaFotoNoDisponible);
        }
    }
 
}